package tech.edwardvan.springsecuritydemo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 过滤器链总代理:{@link org.springframework.security.web.FilterChainProxy}
 * 过滤器链:{@link org.springframework.security.web.DefaultSecurityFilterChain}
 * 认证过滤器:{@link org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter}
 * 鉴权过滤器:{@link org.springframework.security.web.access.intercept.FilterSecurityInterceptor}
 * <p>
 * 建造者接口:{@link org.springframework.security.config.annotation.SecurityBuilder}
 * 建造者实现:{@link org.springframework.security.config.annotation.web.builders.HttpSecurity}
 * <p>
 * 配置器接口:{@link org.springframework.security.config.annotation.SecurityConfigurer}
 * 配置器实现:{@link org.springframework.security.config.annotation.web.configurers.FormLoginConfigurer}
 * <p>
 * 认证管理器接口:{@link org.springframework.security.authentication.AuthenticationManager}
 * 认证管理器实现:{@link org.springframework.security.authentication.ProviderManager}
 * <p>
 * 认证提供者接口:{@link org.springframework.security.authentication.AuthenticationProvider}
 * 认证提供者实现:{@link org.springframework.security.authentication.dao.DaoAuthenticationProvider}
 * <p>
 * 认证对象接口:{@link org.springframework.security.core.Authentication}
 * 认证对象实现:{@link org.springframework.security.authentication.UsernamePasswordAuthenticationToken}
 * <p>
 * 用户详情接口:{@link org.springframework.security.core.userdetails.UserDetailsService}
 * 用户详情实现:{@link org.springframework.security.provisioning.JdbcUserDetailsManager}
 * <p>
 * 访问决策管理器接口:{@link org.springframework.security.access.AccessDecisionManager}
 * 访问决策管理器实现:{@link org.springframework.security.access.vote.AffirmativeBased}
 * <p>
 * 访问决策投票器接口:{@link org.springframework.security.access.AccessDecisionVoter}
 * 访问决策投票器实现:{@link org.springframework.security.web.access.expression.WebExpressionVoter}
 * <p>
 * 访问规则描述接口:{@link org.springframework.security.access.ConfigAttribute}
 * 访问规则描述实现:{@link org.springframework.security.web.access.expression.WebExpressionConfigAttribute}
 *
 * @author EdwardVan
 */
@SpringBootApplication
@MapperScan("tech.edwardvan.springsecuritydemo.rbac.mapper")
public class SpringSecurityApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringSecurityApplication.class, args);
    }

}
